home *** CD-ROM | disk | FTP | other *** search
/ Delphi 2.0 - Programmer's Utilities Power Pack / Delphi 2.0 Programmer's Utilities Power Pack.iso / m_to_r / mapictrl / main.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1996-09-15  |  6.6 KB  |  241 lines

  1. unit Main;
  2.  
  3. interface
  4.  
  5. uses
  6.   SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
  7.   Forms, Dialogs, ExtCtrls, StdCtrls, Buttons, Mapi;
  8.  
  9. type
  10.   TfrmMain = class(TForm)
  11.     MapiSession1: TMapiSession;
  12.     MapiMessage1: TMapiMessage;
  13.     grpSession: TGroupBox;
  14.     Label1: TLabel;
  15.     Label2: TLabel;
  16.     edtName: TEdit;
  17.     edtPwd: TEdit;
  18.     chkLogonUI: TCheckBox;
  19.     chkNewSession: TCheckBox;
  20.     chkDownload: TCheckBox;
  21.     btnConnect: TBitBtn;
  22.     btnDisconnect: TBitBtn;
  23.     grpMessage: TGroupBox;
  24.     memoText: TMemo;
  25.     memoFiles: TMemo;
  26.     memoRecips: TMemo;
  27.     Label3: TLabel;
  28.     Label4: TLabel;
  29.     Label5: TLabel;
  30.     btnSend: TBitBtn;
  31.     btnRead: TBitBtn;
  32.     Label6: TLabel;
  33.     edtSubject: TEdit;
  34.     chkShowAddressBook: TCheckBox;
  35.     chkShowDialog: TCheckBox;
  36.     chkReturnReceipt: TCheckBox;
  37.     chkEnvelopeOnly: TCheckBox;
  38.     chkUnreadOnly: TCheckBox;
  39.     chkPeek: TCheckBox;
  40.     Bevel1: TBevel;
  41.     Bevel2: TBevel;
  42.     procedure btnConnectClick(Sender: TObject);
  43.     procedure btnDisconnectClick(Sender: TObject);
  44.     procedure chkLogonUIClick(Sender: TObject);
  45.     procedure chkNewSessionClick(Sender: TObject);
  46.     procedure chkDownloadClick(Sender: TObject);
  47.     procedure chkShowAddressBookClick(Sender: TObject);
  48.     procedure chkShowDialogClick(Sender: TObject);
  49.     procedure chkReturnReceiptClick(Sender: TObject);
  50.     procedure chkEnvelopeOnlyClick(Sender: TObject);
  51.     procedure chkUnreadOnlyClick(Sender: TObject);
  52.     procedure chkPeekClick(Sender: TObject);
  53.     procedure btnSendClick(Sender: TObject);
  54.     procedure btnReadClick(Sender: TObject);
  55.     procedure memoTextMouseDown(Sender: TObject; Button: TMouseButton;
  56.       Shift: TShiftState; X, Y: Integer);
  57.   private
  58.     { Private declarations }
  59.   public
  60.     { Public declarations }
  61.   end;
  62.  
  63. var
  64.   frmMain: TfrmMain;
  65.  
  66. implementation
  67.  
  68. {$R *.DFM}
  69.  
  70. procedure TfrmMain.btnConnectClick(Sender: TObject);
  71. var
  72.   MapiResult: TMAPIResults;
  73. begin
  74.   { Set properties }
  75.   with MapiSession1 do
  76.     begin
  77.       MAPIName := edtName.Text;
  78.       MAPIPwd := edtPwd.Text;
  79.     end;
  80.  
  81.   { Try to open session }
  82.   MapiResult := MapiSession1.OpenSession;
  83.  
  84.   if MapiResult = mrSuccess then
  85.     begin
  86.       btnDisconnect.Enabled := True;
  87.       btnConnect.Enabled := False;
  88.       btnSend.Enabled := True;
  89.       btnRead.Enabled := True;
  90.     end
  91.   else
  92.     ShowMessage('Couldn''t open session!');
  93. end;
  94.  
  95. procedure TfrmMain.btnDisconnectClick(Sender: TObject);
  96. var
  97.   MapiResult: TMAPIResults;
  98. begin
  99.   { Try to close session }
  100.   MapiResult := MapiSession1.CloseSession;
  101.  
  102.   if MapiResult = mrSuccess then
  103.     begin
  104.       btnDisconnect.Enabled := False;
  105.       btnConnect.Enabled := True;
  106.       btnSend.Enabled := False;
  107.       btnRead.Enabled := False;
  108.     end
  109.   else
  110.     ShowMessage('Could not close session!');
  111. end;
  112.  
  113. procedure TfrmMain.chkLogonUIClick(Sender: TObject);
  114. begin
  115.   if chkLogonUI.Checked then
  116.     MapiSession1.MAPIOptions := MapiSession1.MapiOptions + [soLogonUI]
  117.   else
  118.     MapiSession1.MAPIOptions := MapiSession1.MapiOptions - [soLogonUI];
  119. end;
  120.  
  121. procedure TfrmMain.chkNewSessionClick(Sender: TObject);
  122. begin
  123.   if chkNewSession.Checked then
  124.     MapiSession1.MAPIOptions := MapiSession1.MapiOptions + [soNewSession]
  125.   else
  126.     MapiSession1.MAPIOptions := MapiSession1.MapiOptions - [soNewSession];
  127. end;
  128.  
  129. procedure TfrmMain.chkDownloadClick(Sender: TObject);
  130. begin
  131.   if chkDownload.Checked then
  132.     MapiSession1.MAPIOptions := MapiSession1.MapiOptions + [soDownloadMail]
  133.   else
  134.     MapiSession1.MAPIOptions := MapiSession1.MapiOptions - [soDownloadMail];
  135. end;
  136.  
  137. procedure TfrmMain.chkShowAddressBookClick(Sender: TObject);
  138. begin
  139.   if chkShowAddressBook.Checked then
  140.     MapiMessage1.SendOptions := MapiMessage1.SendOptions + [moShowAddressBook]
  141.   else
  142.     MapiMessage1.SendOptions := MapiMessage1.SendOptions - [moShowAddressBook];
  143. end;
  144.  
  145. procedure TfrmMain.chkShowDialogClick(Sender: TObject);
  146. begin
  147.   if chkShowDialog.Checked then
  148.     MapiMessage1.SendOptions := MapiMessage1.SendOptions + [moShowDialog]
  149.   else
  150.     MapiMessage1.SendOptions := MapiMessage1.SendOptions - [moShowDialog];
  151. end;
  152.  
  153. procedure TfrmMain.chkReturnReceiptClick(Sender: TObject);
  154. begin
  155.   if chkReturnReceipt.Checked then
  156.     MapiMessage1.SendOptions := MapiMessage1.SendOptions + [moReturnReceipt]
  157.   else
  158.     MapiMessage1.SendOptions := MapiMessage1.SendOptions - [moReturnReceipt];
  159. end;
  160.  
  161. procedure TfrmMain.chkEnvelopeOnlyClick(Sender: TObject);
  162. begin
  163.   if chkEnvelopeOnly.Checked then
  164.     MapiMessage1.ReadOptions := MapiMessage1.ReadOptions + [moEnvelopeOnly]
  165.   else
  166.     MapiMessage1.ReadOptions := MapiMessage1.ReadOptions - [moEnvelopeOnly];
  167. end;
  168.  
  169. procedure TfrmMain.chkUnreadOnlyClick(Sender: TObject);
  170. begin
  171.   if chkUnreadOnly.Checked then
  172.     MapiMessage1.ReadOptions := MapiMessage1.ReadOptions + [moUnreadOnly]
  173.   else
  174.     MapiMessage1.ReadOptions := MapiMessage1.ReadOptions - [moUnreadOnly];
  175. end;
  176.  
  177. procedure TfrmMain.chkPeekClick(Sender: TObject);
  178. begin
  179.   if chkPeek.Checked then
  180.     MapiMessage1.ReadOptions := MapiMessage1.ReadOptions + [moPeek]
  181.   else
  182.     MapiMessage1.ReadOptions := MapiMessage1.ReadOptions - [moPeek];
  183. end;
  184.  
  185. procedure TfrmMain.btnSendClick(Sender: TObject);
  186. var
  187.   MapiResult: TMAPIResults;
  188. begin
  189.   { Load the message component }
  190.   with MapiMessage1 do
  191.     begin
  192.       Files.Clear;
  193.       Files.Addstrings(memoFiles.Lines);
  194.       NoteText.Clear;
  195.       NoteText.AddStrings(memoText.Lines);
  196.       Recips.Clear;
  197.       Recips.AddStrings(memoRecips.Lines);
  198.       Session := MapiSession1.Session;
  199.       Subject := edtSubject.Text;
  200.     end;
  201.  
  202.   { Send the message }
  203.   MapiResult := MapiMessage1.SendMail;
  204.   if MapiResult <> mrSuccess then
  205.     ShowMessage('Could not send mail!');
  206. end;
  207.  
  208. procedure TfrmMain.btnReadClick(Sender: TObject);
  209. var
  210.   MapiResult: TMAPIResults;
  211. begin
  212.   { Read the mail }
  213.   MapiMessage1.Session := MapiSession1.Session;
  214.   MapiResult := MapiMessage1.GetMail;
  215.  
  216.   if MapiResult = mrNoMessages then
  217.     ShowMessage('No more messages!');
  218.  
  219.   if MapiResult = mrSuccess then
  220.     begin
  221.       memoFiles.Clear;
  222.       memoFiles.Lines.Addstrings(MapiMessage1.Files);
  223.       memoText.Clear;
  224.       memoText.Lines.Addstrings(MapiMessage1.NoteText);
  225.       memoRecips.Clear;
  226.       memoRecips.Lines.Addstrings(MapiMessage1.Recips);
  227.       edtSubject.Text := MapiMessage1.Subject;
  228.     end
  229.   else
  230.     ShowMessage('Could not read mail!');
  231. end;
  232.  
  233. procedure TfrmMain.memoTextMouseDown(Sender: TObject; Button: TMouseButton;
  234.   Shift: TShiftState; X, Y: Integer);
  235. begin
  236.      If Button = mbRight then
  237.        (Sender as TMemo).Clear;
  238. end;
  239.  
  240. end.
  241.